約 5,406,543 件
https://w.atwiki.jp/sevenlives/pages/1822.html
JNA?
https://w.atwiki.jp/kamiduki0213_/pages/54.html
悔しさをこらえて 蹴り上げた石ころ 跳ね返れば ダイヤモンドになる すぐ手に入る夢なんて 夢じゃないよ でも必ず叶うと 信じてるよ 挫けない 君が好き… 泣きたい時 あるなら 側にずっと ずっと いるから YOU GET TO BURNING 君らしく 誇らしく 向かってよ 夢中になった日々が 夢の破片(かけら)さ YOU GET TO BURNGIN その破片(かけら)を集めて 明日(あす)を目指す 勇気、見えるよ To be… Going your day's. Grow up! 決して解けない 方程式を並べて 落第させる事に いきがる社会(まち) プライドとか 将来を考えたなら 逃げ出すけど 今日に負けたくないと 呟いた 君が好き… あの日のまま 夢見る 瞳、ずっと ずっと 少年 YOU GET TO BURNING 君らしく 愛らしく 笑ってよ 夢中になれる日々が きっと幸せ YOU GET TO BURNING 傷ついてもめげない 明日(あす)を目指す 勇気、見えるよ To be… Going your day's. Grow up! YOU GET TO BURNING 君らしく 誇らしく 向かってよ 夢中になった日々が 夢の破片(かけら)さ YOU GET TO BURNGIN その破片(かけら)を集めて 明日(あす)を目指す 勇気、見えるよ To be… Going your day's. Grow up!
https://w.atwiki.jp/rsbuygoldq/pages/67.html
A person presumably tend to be brainwork exactly how within the angel do he or she bolt that lots of?! Nicely, that s that which you tend to be going to discover. Shrimp. you might entry your online because above linked because you’re away Guide Isle. the actual lots of capable agency to perform, is actually choose a applique tackle as well as leader angling. the actual lots of capable tackle in order to flex reaches Draynor, that s western from the Lumbridge Fortress. there’s an instance useful, therefore seafood, as well as financial institution. you’ll urge for food in order to evaluation the broiler as well as cook the actual seafood a href="http //www.4rsgold.com/" strong Buy RS Gold /strong /a , like a aftereffect associated with ascetic flex could possibly get a person additional money. Maintain angling purchase runescape precious metal in the rates. currently associated 5, in advance in order to Sardines, from 10, Herring, over upon over on. In the event that you’re an associate, associated 16 has already been this gets simple. At the moment, achieved upon to Catherby as well as leader angling with regard to Mackerel. edge within apperception regularly situation your own seafood. Should you accede all of them inside your stock, you might above linked go out associated with home. Right now, currently you’re angling from associated 40, you might be achievable in order to flex with regard to lobsters. they’re good money. Familiarize all of them everywhere with regard to 50-100gp each and every. When i total prior to, ascetic ar regularly faster retailers. Consequently, you might urge for food to get into 40 alter associated with item relaxed using the angling. popularity really a good handful of your own flex may burn off, the actual additional a person seafood, prepare, as well as financial institution, the actual beneath which is burnt. the actual lots of capable tackle for that seafood, prepare, as well as situation position is within Catherby. it’s regarding wedding ceremony loving associated with angling available on the market. good with regard to physiques that are trying to associated upward. Whenever you ar capable with regard to Swordfish, a person accusations in order to diary which Swordfish don’t obtain to become planning to stop wasting time spaced whatsoever, they’re visiting harvest better to capture. they’re good for that They would. G. as well as good doctor additionally. (150-200 DOCTOR) Believe in Pinus radiata Sapling Condition, it s capable yearly time as well as acrimony currently a person familiarize the main lot a href="http //www.4rsgold.com/" strong Runescape Gold /strong /a . a hundred swordies from 200 doctor each and every is actually loving of the bagatelle associated with modification. a hundred swordfish doesn’t item such as a lot, regarding purchase discount rs precious metal you might understand why they’re mass the majority of, currently you re able to the actual modified degree, as well as leader in order to flex as well as cook this, you might understand why. With regard to non-members, a person entry reached bicycling in order to Karamja in order to flex with regard to Lobby’s as well as Swordies. Certainly, this is often a difficulty as well as costs really a good little bit in order to bicycling embarrassed as well as 4th cyberbanking this. Therefore, it’s greatest to become a connect at the moment.
https://w.atwiki.jp/niko_tan/pages/52.html
Bonferroni 補正 の復習 ♪ その前に、 familywise error rate 複数回繰り返された検定全体において帰無仮説が棄却される可能性 有意水準α = 0.05 の検定を繰り返す事は、さいころを繰り返し振るのと確率論的には同じ。 検定を繰り返せば繰り返すほど、偶然棄却される帰無仮説が増える。 有意水準α = 0.05の検定を20回繰り返すと、 1回でも帰無仮説が棄却される可能性は、familywise error rate=0.642 100回繰り返すと、familywise error rate=0.994 多重比較を行う場合(=検定を繰り返す)、各々の検定の有意水準 α <0.05 未満にしなければ、 familywise error rate <0.05 にできない。 Familywise Error Rateを調整する方法 (1)F統計量やt統計量等の統計量に基づいた方法 F統計量を用いたFisher s least significant difference (Fisher s LSD)法、 t統計量を用いた Tukey s honestly significant difference (Tukey s HSD)法、 t統計量を用いてcontrol群と非コントロール群の比較のみを行う Dunnet法 (2) Bonferroni法やHolm法 統計量に依存しないため、どのような検定に対しても利用可で、汎用性が高い。 Bonferroni法 検定総数がNの場合、それぞれの検定の有意水準をαからα/Nに変更する。 検定総数が20ならば、20個の検定全てにおいて、有意水準を0.05/20 = 0.0025に変更。 非常に保守的なfamilywise error rateの調整法。 βエラーの可能性が高い。 「p値 α/N」となった帰無仮説は、棄却が保留されると考えるのが妥当。 ヾ(* - *)
https://w.atwiki.jp/dmori/pages/52.html
VPI(PLI2.0)を使う概要 参考資料 ソース テストベンチ 実行方法Cver NC-Verilog VCS ModelSim Veritak メモ VPI(PLI2.0)を使う 概要 Verilogから他言語の呼び出し Verilogでは出来ないor難しいことをVPIで実装 リファレンスモデル等、Verilog以外での実装が都合良いもの 参考資料 http //www.asic-world.com/verilog/pli6.html ソース 引数の数を数えて表示する "$count_args();"のとき、引数を0個とするか1個とするか、シミュレータによって差があるようだ。 count_args.c #include "vpi_user.h" #define NULL 0L int count_args(){ vpiHandle thisTask, argI, argH; int count = 0; thisTask = vpi_handle(vpiSysTfCall, NULL); if (vpi_chk_error(NULL)){ vpi_printf("ERROR Could not get a handle to the task/func!\n"); return(0); } argI = vpi_iterate(vpiArgument, thisTask); if (vpi_chk_error(NULL)){ vpi_printf("ERROR Could not get iterator for task/func arguments!\n"); return(0); } if (!argI){ vpi_printf("There are 0 arguments to the system task.\n"); return(0); } /* Step throught args */ while (argH = vpi_scan(argI)){ vpi_free_object(argH); count++; } vpi_printf("There are %i arguments to the system task.\n",count); return(0); } vpi_user.c シミュレータとのインターフェース、登録など #include stdio.h #include "vpi_user.h" #ifdef NCVERILOG #include "vpi_user_cds.h" #endif #ifdef CVER #include "cv_vpi_user.h" #endif #define FALSE 0 #define TRUE 1 extern int count_args(); static s_vpi_systf_data systfTestList[] = { { /* Attribute */ vpiSysTask ,/* int type vpiSysTask | vpiSysFunc */ 0 ,/* int sysfunctype vpiSysFuncInt|vpiSysFuncReal|vpiSysFuncTime|vpiSysFuncSise */ "$count_args",/* char *tfname Function Name ="\$[A-Za-z0-9_]+" */ count_args ,/* int (*calltf) (option) application routine */ 0 ,/* int (*compiletf) (option) calls once each time it compiles an instance */ 0 ,/* int (*sizetf) (option) */ 0 /* char *user_data (option) */ }, { 0 } }; void setup_test_callbacks() { p_vpi_systf_data systf_data_p = (systfTestList[0]); while(systf_data_p- type){ vpi_register_systf(systf_data_p++); if (vpi_chk_error(NULL)){ vpi_printf("Error occured while setting up user %s\n", "defined system tasks and functions."); return; } } } void (*vlog_startup_routines[])() = { setup_test_callbacks,/* */ 0 /* final entry must be 0 */ }; #ifdef CVER void vpi_compat_bootstrap(void){ int i; for (i = 0;; i++){ if (vlog_startup_routines[i] == NULL) break; vlog_startup_routines[i](); } } #endif テストベンチ test.v module top(I1); input I1; reg a; integer int; real r1; time t1 [31 0]; initial begin $count_args(a, int, r1, t1); $count_args(); $count_args; $count_args(a); end endmodule 実行方法 Cver gcc -g -I(gplcver-2.12aの場所)/pli_incs -c vpi_user.c count_args.c -DCVER gcc count_args.o vpi_user.o -shared --export-dynamic -o vpi.so cver +loadvpi=./vpi.so vpi_compat_bootstrap test.v 実行結果。 solaris(SPARC)は失敗する・・・。 % cver test.v +loadvpi=./vpi.so vpi_compat_bootstrapGPLCVER_2.12a of 05/16/07 (Sparc-Solaris).Copyright (c) 1991-2007 Pragmatic C Software Corp. All Rights reserved. Licensed under the GNU General Public License (GPL). See the 'COPYING' file for details. NO WARRANTY provided.Today is Wed Nov 26 16 33 23 2008. **ERROR** [1803] unable to load +loadvpi= dynamic library ld.so.1 cver 重大なエラー 再配置エラー ファイル ./vpi.so シンボル vpi_handle 参照シンボルが見つかりません。Compiling source file "test.v" **test.v(12) ERROR** [1083] task enable of unknown system task or undefined PLI task "$count_args" **test.v(13) ERROR** [1083] task enable of unknown system task or undefined PLI task "$count_args" **test.v(14) ERROR** [1083] task enable of unknown system task or undefined PLI task "$count_args" **test.v(15) ERROR** [1083] task enable of unknown system task or undefined PLI task "$count_args" **test.v(16) ERROR** [1061] statement structure end bracket problem - end read Unable to begin simulation. There were 6 error(s), 0 warning(s), and 0 inform(s).End of GPLCVER_2.12a at Wed Nov 26 16 33 23 2008 (elapsed 0.0 seconds).% linux(80386)は成功する。 Warningがでている。Cverは引数が無い場合に括弧あると、文句をいうようだ。 GPLCVER_2.12a of 05/16/07 (Linux-elf).Copyright (c) 1991-2007 Pragmatic C Software Corp. All Rights reserved. Licensed under the GNU General Public License (GPL). See the 'COPYING' file for details. NO WARRANTY provided.Today is Wed Nov 26 17 10 08 2008.Compiling source file "test.v"Highest level modules top **test.v(11) WARN** [633] system task enable $count_args(); has one empty argument - for no arguments omit the ()There are 4 arguments to the system task.There are 1 arguments to the system task.There are 0 arguments to the system task.There are 1 arguments to the system task.0 simulation events and 0 declarative immediate assigns processed.4 behavioral statements executed (1 procedural suspends). Times (in sec.) Translate 0.1, load/optimize 0.1, simulation 0.1. There were 0 error(s), 7 warning(s), and 7 inform(s).End of GPLCVER_2.12a at Wed Nov 26 17 10 08 2008 (elapsed 0.2 seconds). NC-Verilog gcc -c -g -I$CDS_INST_DIR/tools/include count_args.c vpi_user.c -DNCVERILOG gcc count_args.o vpi_user.o -shared --export-dynamic -o vpi.so ncverilog +loadvpi=./vpi setup_test_callbacks test.v ".so"は省略可みたい 実行結果。 ncverilog 06.11-s004 (c) Copyright 1995-2007 Cadence Design Systems, Inc.file test.v module worklib.top v errors 0, warnings 0 Caching library 'worklib' ....... Done Elaborating the design hierarchy Building instance overlay tables .................... Done Generating native compiled code worklib.top v 0x095a53b5 streams 1, words 124 Loading native compiled code .................... Done Building instance specific data structures. Design hierarchy summary Instances Unique Modules 1 1 Registers 4 4 Initial blocks 1 1 Writing initial simulation snapshot worklib.top vLoading snapshot worklib.top v .................... Donencsim source /usr2/cadence/simulator/IUS611_s004/tools/inca/files/ncsimrcncsim runThere are 4 arguments to the system task.There are 1 arguments to the system task.There are 0 arguments to the system task.There are 1 arguments to the system task.ncsim *W,RNQUIE Simulation is complete.ncsim exit VCS vcs -R -P count_args.tab count_args.c test.v +vpi -CFLAGS "-I$VCS_HOME/linux/lib" -DNCVERILOG +cli VCSの場合、tabファイルを使って呼び出します。vpi_user.c不要です。 count_args.tab $count_args call=count_args 実行結果。 Chronologic VCS (TM) Version Y-2006.06-SP1 -- Wed Nov 26 16 42 01 2008 Copyright (c) 1991-2006 by Synopsys Inc. ALL RIGHTS RESERVEDThis program is proprietary and confidential information of Synopsys Inc.and may be used and disclosed only as authorized in a license agreementcontrolling such use and disclosure. ***** Warning ACC/CLI capabilities have been enabled for the entire design. For faster performance enable module specific capability in pli.tab fileParsing design file 'test.v'Top Level Modules topNo TimeScale specifiedStarting vcs inline pass...1 module and 0 UDP read. However, due to incremental compilation, no re-compilation is necessary.make *** Warning File `filelist' has modification time in the future (2008-11-26 16 42 03 2008-11-26 16 42 02.143906)../simv up to datemake warning Clock skew detected. Your build may be incomplete.Chronologic VCS simulator copyright 1991-2005Contains Synopsys proprietary information.Compiler version Y-2006.06-SP1; Runtime version Y-2006.06-SP1; Nov 26 16 42 2008There are 4 arguments to the system task.There are 0 arguments to the system task.There are 0 arguments to the system task.There are 1 arguments to the system task. V C S S i m u l a t i o n R e p o r tTime 0CPU Time 0.000 seconds; Data structure size 0.0MbWed Nov 26 16 42 02 2008CPU time .030 seconds to compile + .020 seconds to link + .040 seconds in simulation ModelSim unix windows まだ試してない Veritak まだ購入してない メモ 名前 link_pdfプラグインはご利用いただけなくなりました。 -
https://w.atwiki.jp/study_english/pages/18.html
彼女は期末試験でAを取った。 雨でカーテンがぬれてきている。 このあたりでは10月の初旬ごろに寒くなる。 赤ちゃんを寝かせつけます。 彼女は期末試験でAを取った。 She got an A on her final exam. 雨でカーテンがぬれてきている。 The rain is getting the curtains wet. このあたりでは10月の初旬ごろに寒くなる。 It gets cold here around the beginning of October. 赤ちゃんを寝かせつけます。 I`ll get the baby to sleep.
https://w.atwiki.jp/vocaloidchly/pages/2348.html
作詞:たーP 作曲:たーP 編曲:たーP 歌:初音ミク 翻譯:cyataku 偏差 究竟為什麼會變成這樣我所 不斷描繪出的視界 始終夢想著的視界 發出慘叫後崩潰了 啊啊…本該不是這樣的啊 我所制定出來的完美的 人生計劃! (程序) 「可為什麼?」 才不是這樣的啊 我在向你尋求著的東西 將我送給你的 全部的我都 還回來啦 好嗎 究竟為什麼會變成這樣你所 尋求著的未來已經 難道還沒注意到 不是吧 才沒有那麼回事 那是騙人吧? 啊啊…就快點察覺到吧 別再一臉笑嘻嘻地死盯著 niconico看啦! 「知道了嗎。」 才不是這樣的啊 你在向我尋求著的東西 這種關係 好想刪除掉 要不就撤銷操作 走到今天這步 已經夠了不是嗎? 都滿足了吧?是吧? 迎合口味般 搖頭擺尾的 以後就都算了吧… 發現了嗎?這段 鬧到好僵的 兩個人的關係 已經沒藥救了 除了刪除已別無他法 偏差的源頭 是我嗎是你嗎 還是說是xxx 那就 讓我們分手告別吧 反正你看啊我們 尋求的東西 本來也就不是 這種東西嘛, 對吧?
https://w.atwiki.jp/haruhi_vip2/pages/5869.html
ども。『三つ巴』、『遭遇』、『反転世界の運命恋歌』の作者です。いやホントに。 今回のお話は、これも昔々弊サイトでUPしたもので、(一部、シーンやセリフ回しを使ってはいますけど)別に件のburst errorをオマージュしたものって訳じゃなく、憂鬱と消失をパクったがベースになっているモノでございます。 それにしても、まさか、burst errorリニューアル版でキョンの中の人が主人公の声をやるとは思わなかったなぁ。 YUKI burst error Ⅰ YUKI burst error Ⅱ YUKI burst error Ⅲ YUKI burst error Ⅳ YUKI burst error Ⅴ YUKI burst error Ⅵ YUKI burst error Ⅶ YUKI burst error Ⅷ YUKI burst error Ⅸ YUKI burst error Ⅹ YUKI burst error ⅩⅠ YUKI burst error ⅩⅡ YUKI burst error ⅩⅢ そう言えば、前作UP時に、何故か「文章がよく分からない部分がある」というコメントをもらってたけど、具体的にどういう部分なのかを教えてもらえないものだろうか。
https://w.atwiki.jp/fumokmm/pages/8.html
/******************************************************************************* * Copyright (c) 2000, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http //www.eclipse.org/legal/epl-v10.html * * Contributors * IBM Corporation - initial API and implementation *******************************************************************************/import org.eclipse.swt.*;import org.eclipse.swt.graphics.*;import org.eclipse.swt.widgets.*;import org.eclipse.swt.events.*; /** * A TableCursor provides a way for the user to navigate around a Table * using the keyboard. It also provides a mechanism for selecting an * individual cell in a table. * * p Here is an example of using a TableCursor to navigate to a cell and then edit it. * * code pre * public static void main(String[] args) { *Display display = new Display(); *Shell shell = new Shell(display); *shell.setLayout(new GridLayout()); * *// create a a table with 3 columns and fill with data *final Table table = new Table(shell, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); *table.setLayoutData(new GridData(GridData.FILL_BOTH)); *TableColumn column1 = new TableColumn(table, SWT.NONE); *TableColumn column2 = new TableColumn(table, SWT.NONE); *TableColumn column3 = new TableColumn(table, SWT.NONE); *for (int i = 0; i lt; 100; i++) { *TableItem item = new TableItem(table, SWT.NONE); *item.setText(new String[] { "cell "+i+" 0", "cell "+i+" 1", "cell "+i+" 2"}); *} *column1.pack(); *column2.pack(); *column3.pack(); * *// create a TableCursor to navigate around the table *final TableCursor cursor = new TableCursor(table, SWT.NONE); *// create an editor to edit the cell when the user hits "ENTER" *// while over a cell in the table *final ControlEditor editor = new ControlEditor(cursor); *editor.grabHorizontal = true; *editor.grabVertical = true; * *cursor.addSelectionListener(new SelectionAdapter() { *// when the TableEditor is over a cell, select the corresponding row in *// the table *public void widgetSelected(SelectionEvent e) { *table.setSelection(new TableItem[] {cursor.getRow()}); *} *// when the user hits "ENTER" in the TableCursor, pop up a text editor so that *// they can change the text of the cell *public void widgetDefaultSelected(SelectionEvent e){ *final Text text = new Text(cursor, SWT.NONE); *TableItem row = cursor.getRow(); *int column = cursor.getColumn(); *text.setText(row.getText(column)); *text.addKeyListener(new KeyAdapter() { *public void keyPressed(KeyEvent e) { *// close the text editor and copy the data over *// when the user hits "ENTER" *if (e.character == SWT.CR) { *TableItem row = cursor.getRow(); *int column = cursor.getColumn(); *row.setText(column, text.getText()); *text.dispose(); *} *// close the text editor when the user hits "ESC" *if (e.character == SWT.ESC) { *text.dispose(); *} *} *}); *editor.setEditor(text); *text.setFocus(); *} *}); *// Hide the TableCursor when the user hits the "MOD1" or "MOD2" key. *// This alows the user to select multiple items in the table. *cursor.addKeyListener(new KeyAdapter() { *public void keyPressed(KeyEvent e) { *if (e.keyCode == SWT.MOD1 || * e.keyCode == SWT.MOD2 || * (e.stateMask SWT.MOD1) != 0 || * (e.stateMask SWT.MOD2) != 0) { *cursor.setVisible(false); *} *} *}); *// Show the TableCursor when the user releases the "MOD2" or "MOD1" key. *// This signals the end of the multiple selection task. *table.addKeyListener(new KeyAdapter() { *public void keyReleased(KeyEvent e) { *if (e.keyCode == SWT.MOD1 (e.stateMask SWT.MOD2) != 0) return; *if (e.keyCode == SWT.MOD2 (e.stateMask SWT.MOD1) != 0) return; *if (e.keyCode != SWT.MOD1 (e.stateMask SWT.MOD1) != 0) return; *if (e.keyCode != SWT.MOD2 (e.stateMask SWT.MOD2) != 0) return; * *TableItem[] selection = table.getSelection(); *TableItem row = (selection.length == 0) ? table.getItem(table.getTopIndex()) selection[0]; *table.showItem(row); *cursor.setSelection(row, 0); *cursor.setVisible(true); *cursor.setFocus(); *} *}); * *shell.open(); *while (!shell.isDisposed()) { *if (!display.readAndDispatch()) *display.sleep(); *} *display.dispose(); *} * /pre /code * * dl * dt b Styles /b /dt * dd BORDER /dd * dt b Events /b /dt * dd Selection, DefaultSelection /dd * /dl * * @since 2.0 * */public class TableCursor2 extends Canvas {Table table;TableItem row = null;TableColumn column = null;Listener tableListener, resizeListener, disposeItemListener, disposeColumnListener; // By default, invert the list selection colorsstatic final int BACKGROUND = SWT.COLOR_LIST_SELECTION_TEXT;static final int FOREGROUND = SWT.COLOR_LIST_SELECTION; /** * Constructs a new instance of this class given its parent * table and a style value describing its behavior and appearance. * p * The style value is either one of the style constants defined in * class code SWT /code which is applicable to instances of this * class, or must be built by em bitwise OR /em ing together * (that is, using the code int /code "|" operator) two or more * of those code SWT /code style constants. The class description * lists the style constants that are applicable to the class. * Style bits are also inherited from superclasses. * /p * * @param parent a Table control which will be the parent of the new instance (cannot be null) * @param style the style of control to construct * * @exception IllegalArgumentException ul * li ERROR_NULL_ARGUMENT - if the parent is null /li * /ul * @exception SWTException ul * li ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent /li * li ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass /li * /ul * * @see SWT#BORDER * @see Widget#checkSubclass() * @see Widget#getStyle() */public TableCursor2(Table parent, int style) {super(parent, style);table = parent;setBackground(null);setForeground(null); Listener listener = new Listener() {public void handleEvent(Event event) {switch (event.type) {case SWT.Dispose dispose(event);break;case SWT.FocusIn case SWT.FocusOut redraw();break;case SWT.KeyDown keyDown(event);break;case SWT.Paint paint(event);break;case SWT.Traverse traverse(event);break;}}};int[] events = new int[] {SWT.Dispose, SWT.FocusIn, SWT.FocusOut, SWT.KeyDown, SWT.Paint, SWT.Traverse};for (int i = 0; i events.length; i++) {addListener(events[i], listener);} tableListener = new Listener() {public void handleEvent(Event event) {switch (event.type) {case SWT.MouseDown tableMouseDown(event);break;case SWT.FocusIn tableFocusIn(event);break;}}};table.addListener(SWT.FocusIn, tableListener);table.addListener(SWT.MouseDown, tableListener); disposeItemListener = new Listener() {public void handleEvent(Event event) {row = null;column = null;_resize();}};disposeColumnListener = new Listener() {public void handleEvent(Event event) {row = null;column = null;_resize();}};resizeListener = new Listener() {public void handleEvent(Event event) {_resize();}};ScrollBar hBar = table.getHorizontalBar();if (hBar != null) {hBar.addListener(SWT.Selection, resizeListener);}ScrollBar vBar = table.getVerticalBar();if (vBar != null) {vBar.addListener(SWT.Selection, resizeListener);}} /** * Adds the listener to the collection of listeners who will * be notified when the receiver s selection changes, by sending * it one of the messages defined in the code SelectionListener /code * interface. * p * When code widgetSelected /code is called, the item field of the event object is valid. * If the receiver has code SWT.CHECK /code style set and the check selection changes, * the event object detail field contains the value code SWT.CHECK /code . * code widgetDefaultSelected /code is typically called when an item is double-clicked. * /p * * @param listener the listener which should be notified * * @exception IllegalArgumentException ul * li ERROR_NULL_ARGUMENT - if the listener is null /li * /ul * @exception SWTException ul * li ERROR_WIDGET_DISPOSED - if the receiver has been disposed /li * li ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver /li * /ul * * @see SelectionListener * @see SelectionEvent * @see #removeSelectionListener(SelectionListener) * */public void addSelectionListener(SelectionListener listener) {checkWidget();if (listener == null)SWT.error(SWT.ERROR_NULL_ARGUMENT);TypedListener typedListener = new TypedListener(listener);addListener(SWT.Selection, typedListener);addListener(SWT.DefaultSelection, typedListener);} void dispose(Event event) {table.removeListener(SWT.FocusIn, tableListener);table.removeListener(SWT.MouseDown, tableListener);if (column != null) {column.removeListener(SWT.Dispose, disposeColumnListener);column.removeListener(SWT.Move, resizeListener);column.removeListener(SWT.Resize, resizeListener);column = null;}if (row != null) {row.removeListener(SWT.Dispose, disposeItemListener);row = null;}ScrollBar hBar = table.getHorizontalBar();if (hBar != null) {hBar.removeListener(SWT.Selection, resizeListener);}ScrollBar vBar = table.getVerticalBar();if (vBar != null) {vBar.removeListener(SWT.Selection, resizeListener);}} void keyDown(Event event) {if (row == null) return;//if (event.keyCode == SWT.F2) {//notifyListeners(SWT.DefaultSelection, new Event());//return;//} int rowIndex = table.indexOf(row);int columnIndex = column == null ? 0 table.indexOf(column); if (event.keyCode == SWT.CR (event.stateMask SWT.SHIFT) != 0) {setRowColumn(Math.max(0, rowIndex - 1), columnIndex, true); } else if (event.keyCode == SWT.CR) {setRowColumn(Math.min(rowIndex + 1, table.getItemCount() - 1), columnIndex, true); } else if (event.keyCode == SWT.TAB (event.stateMask SWT.SHIFT) != 0) {arrowLR(event, rowIndex, columnIndex); } else if (event.keyCode == SWT.TAB) {arrowLR(event, rowIndex, columnIndex); } else if (event.keyCode == SWT.HOME) {setRowColumn(0, columnIndex, true); } else if (event.keyCode == SWT.END) {int i = table.getItemCount() - 1;setRowColumn(i, columnIndex, true); } else if (event.keyCode == SWT.PAGE_UP) {int index = table.getTopIndex();if (index == rowIndex) {Rectangle rect = table.getClientArea();TableItem item = table.getItem(index);Rectangle itemRect = item.getBounds(0);rect.height -= itemRect.y;int height = table.getItemHeight();int page = Math.max(1, rect.height / height);index = Math.max(0, index - page + 1);}setRowColumn(index, columnIndex, true); } else if (event.keyCode == SWT.PAGE_DOWN) {int index = table.getTopIndex();Rectangle rect = table.getClientArea();TableItem item = table.getItem(index);Rectangle itemRect = item.getBounds(0);rect.height -= itemRect.y;int height = table.getItemHeight();int page = Math.max(1, rect.height / height);int end = table.getItemCount() - 1;index = Math.min(end, index + page - 1);if (index == rowIndex) {index = Math.min(end, index + page - 1);}setRowColumn(index, columnIndex, true);} notifyListeners(SWT.DefaultSelection, new Event());} private void arrowLR(Event event, int rowIndex, int columnIndex) {int columnCount = table.getColumnCount();if (columnCount == 0) {return;}int[] order = table.getColumnOrder();int index = 0;while (index order.length) {if (order[index] == columnIndex) {break;}index++;}if (index == order.length) index = 0;//int leadKey = (getStyle() SWT.RIGHT_TO_LEFT) != 0 ? SWT.ARROW_RIGHT SWT.ARROW_LEFT;if (event.keyCode == SWT.TAB (event.stateMask SWT.SHIFT) != 0) { setRowColumn(rowIndex, order[Math.max(0, index - 1)], true);} else { setRowColumn(rowIndex, order[Math.min(columnCount - 1, index + 1)], true);}} void paint(Event event) {if (row == null) return;int columnIndex = column == null ? 0 table.indexOf(column);GC gc = event.gc;Display display = getDisplay();gc.setBackground(getBackground());gc.setForeground(getForeground());gc.fillRectangle(event.x, event.y, event.width, event.height);int x = 0;Point size = getSize();Image image = row.getImage(columnIndex);if (image != null) {Rectangle imageSize = image.getBounds();int imageY = (size.y - imageSize.height) / 2;gc.drawImage(image, x, imageY);x += imageSize.width;}String text = row.getText(columnIndex);if (text != "") { //$NON-NLS-1$Rectangle bounds = row.getBounds(columnIndex);Point extent = gc.stringExtent(text);// Temporary code - need a better way to determine table trimString platform = SWT.getPlatform();if ("win32".equals(platform)) { //$NON-NLS-1$if (table.getColumnCount() == 0 || columnIndex == 0) {x += 2; } else {int alignmnent = column.getAlignment();switch (alignmnent) {case SWT.LEFT x += 6;break;case SWT.RIGHT x = bounds.width - extent.x - 6;break;case SWT.CENTER x += (bounds.width - x - extent.x) / 2;break;}}} else {if (table.getColumnCount() == 0) {x += 5; } else {int alignmnent = column.getAlignment();switch (alignmnent) {case SWT.LEFT x += 5;break;case SWT.RIGHT x = bounds.width- extent.x - 2;break;case SWT.CENTER x += (bounds.width - x - extent.x) / 2 + 2;break;}}}int textY = (size.y - extent.y) / 2;gc.drawString(text, x, textY);}if (isFocusControl()) {gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));gc.drawFocus(0, 0, size.x, size.y);}} void tableFocusIn(Event event) {if (isDisposed())return;if (isVisible())setFocus();} void tableMouseDown(Event event) {if (isDisposed() || !isVisible()) return;Point pt = new Point(event.x, event.y);int lineWidth = table.getLinesVisible() ? table.getGridLineWidth() 0;TableItem item = table.getItem(pt);if ((table.getStyle() SWT.FULL_SELECTION) != 0) {if (item == null) return;} else {int start = item != null ? table.indexOf(item) table.getTopIndex();int end = table.getItemCount();Rectangle clientRect = table.getClientArea();for (int i = start; i end; i++) {TableItem nextItem = table.getItem(i);Rectangle rect = nextItem.getBounds(0);if (pt.y = rect.y pt.y rect.y + rect.height + lineWidth) {item = nextItem;break;}if (rect.y clientRect.y + clientRect.height) return;}if (item == null) return;}TableColumn newColumn = null;int columnCount = table.getColumnCount();if (columnCount 0) {for (int i = 0; i columnCount; i++) {Rectangle rect = item.getBounds(i);rect.width += lineWidth;rect.height += lineWidth;if (rect.contains(pt)) {newColumn = table.getColumn(i);break;}}if (newColumn == null) {newColumn = table.getColumn(0);}}setRowColumn(item, newColumn, true);setFocus();return;} void traverse(Event event) {switch (event.detail) {case SWT.TRAVERSE_TAB_NEXT case SWT.TRAVERSE_TAB_PREVIOUS case SWT.TRAVERSE_RETURN event.doit = false;return;}event.doit = true;}void setRowColumn(int row, int column, boolean notify) {TableItem item = row == -1 ? null table.getItem(row);TableColumn col = column == -1 || table.getColumnCount() == 0 ? null table.getColumn(column);setRowColumn(item, col, notify);}void setRowColumn(TableItem row, TableColumn column, boolean notify) {if (this.row == row this.column == column) {return;}if (this.row != null this.row != row) {this.row.removeListener(SWT.Dispose, disposeItemListener);this.row = null;}if (this.column != null this.column != column) {this.column.removeListener(SWT.Dispose, disposeColumnListener);this.column.removeListener(SWT.Move, resizeListener);this.column.removeListener(SWT.Resize, resizeListener);this.column = null;}if (row != null) {if (this.row != row) {this.row = row;row.addListener(SWT.Dispose, disposeItemListener);table.showItem(row);}if (this.column != column column != null) {this.column = column;column.addListener(SWT.Dispose, disposeColumnListener);column.addListener(SWT.Move, resizeListener);column.addListener(SWT.Resize, resizeListener);table.showColumn(column);}int columnIndex = column == null ? 0 table.indexOf(column);setBounds(row.getBounds(columnIndex));redraw();if (notify) {notifyListeners(SWT.Selection, new Event());}}} public void setVisible(boolean visible) {checkWidget();if (visible) _resize();super.setVisible(visible);} /** * Removes the listener from the collection of listeners who will * be notified when the receiver s selection changes. * * @param listener the listener which should no longer be notified * * @exception IllegalArgumentException ul * li ERROR_NULL_ARGUMENT - if the listener is null /li * /ul * @exception SWTException ul * li ERROR_WIDGET_DISPOSED - if the receiver has been disposed /li * li ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver /li * /ul * * @see SelectionListener * @see #addSelectionListener(SelectionListener) * * @since 3.0 */public void removeSelectionListener(SelectionListener listener) {checkWidget();if (listener == null) {SWT.error(SWT.ERROR_NULL_ARGUMENT);}removeListener(SWT.Selection, listener);removeListener(SWT.DefaultSelection, listener);} void _resize() {if (row == null) {setBounds(-200, -200, 0, 0);} else {int columnIndex = column == null ? 0 table.indexOf(column);setBounds(row.getBounds(columnIndex));}}/** * Returns the column over which the TableCursor is positioned. * * @return the column for the current position * * @exception SWTException ul * li ERROR_WIDGET_DISPOSED - if the receiver has been disposed /li * li ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver /li * /ul */public int getColumn() {checkWidget();return column == null ? 0 table.indexOf(column);}/** * Returns the row over which the TableCursor is positioned. * * @return the item for the current position * * @exception SWTException ul * li ERROR_WIDGET_DISPOSED - if the receiver has been disposed /li * li ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver /li * /ul */public TableItem getRow() {checkWidget();return row;}public void setBackground (Color color) {if (color == null) color = getDisplay().getSystemColor(BACKGROUND);super.setBackground(color);redraw();}public void setForeground (Color color) {if (color == null) color = getDisplay().getSystemColor(FOREGROUND);super.setForeground(color);redraw();}/** * Positions the TableCursor over the cell at the given row and column in the parent table. * * @param row the index of the row for the cell to select * @param column the index of column for the cell to select * * @exception SWTException ul * li ERROR_WIDGET_DISPOSED - if the receiver has been disposed /li * li ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver /li * /ul * */public void setSelection(int row, int column) {checkWidget();int columnCount = table.getColumnCount();int maxColumnIndex = columnCount == 0 ? 0 columnCount - 1;if (row 0 || row = table.getItemCount()|| column 0|| column maxColumnIndex)SWT.error(SWT.ERROR_INVALID_ARGUMENT);setRowColumn(row, column, false);}/** * Positions the TableCursor over the cell at the given row and column in the parent table. * * @param row the TableItem of the row for the cell to select * @param column the index of column for the cell to select * * @exception SWTException ul * li ERROR_WIDGET_DISPOSED - if the receiver has been disposed /li * li ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver /li * /ul * */public void setSelection(TableItem row, int column) {checkWidget();int columnCount = table.getColumnCount();int maxColumnIndex = columnCount == 0 ? 0 columnCount - 1;if (row == null|| row.isDisposed()|| column 0|| column maxColumnIndex)SWT.error(SWT.ERROR_INVALID_ARGUMENT);setRowColumn(table.indexOf(row), column, false);}}
https://w.atwiki.jp/carstereo/pages/66.html
We ve been talkin bout this thing for far too long Watching the world go by Afraid that one of us would button up and change their mind But still you know we ve gotta try Won t you ever think of asking me to be your girl Or making love to me Better make your move Maybe then I ll start to show how I really feel Got to get a little bit of your love baby Got to get a little bit of your love baby Repeat 1st verse Got to get a little bit of your love baby Got to get a little bit of your love baby There ll never be another all my life Still I keep waiting to say that you re mine There ll never be no-other on my mind Cos all these things I ve been missing They just keep me wishing Just a little bit Just a little bit yeh Got to get a little bit of your love baby Got to get a little bit of your love baby